var fs = require("fs");
var p1 = new Promise(function(resolve,reject){
	fs.readFile("./tmp.txt","utf-8",function(err,data){//readFile方法是异步
		if(err){
			reject(err);//失败时执行这个回调函数
		}else{
			resolve(data);//成功时执行这个回调函数
		}
	});
});
var p2 = new Promise(function(resolve,reject){
	fs.readFile("./tmp.1.txt","utf-8",function(err,data){//readFile方法是异步
		if(err){
			reject(err);//失败时执行这个回调函数
		}else{
			resolve(data);//成功时执行这个回调函数
		}
	});
});
var p3 = new Promise(function(resolve,reject){
	fs.readFile("./tmp.2.txt","utf-8",function(err,data){//readFile方法是异步
		if(err){
			reject(err);//失败时执行这个回调函数
		}else{
			resolve(data);//成功时执行这个回调函数
		}
	});
});

p1.then(
	function(data){
		console.log("读取成功:"+data);
		// 当前函数中 return 的结果就可以在后面的 then 中 function 接收到
		//return "aaa";的内容后面的then可以收到
		//真正有用的是：我们可以 return 一个 Promise 对象
		// 当 return 一个 Promise 对象的时候，后续的 then 中的 方法的第一个参数会作为 p2 的 resolve
		return p2;
	},
	function(err){
		console.error("读取异常",err);
	}
).then(
	function(data){
		console.log(data);
		return p3;
	},
	function(err){
		console.error("读取异常",err);
	}
).then(
	function(data){
		console.log(data);
	},
	function(err){
		console.error("读取异常",err);
	}
);
//这样有执行顺序的异步任务